Method and apparatus to use physical design information to detect IR drop prone test patterns

ABSTRACT

A method is provided to evaluate whether one or more test patterns is power safe for use during manufacturing testing of an integrated circuit that includes a nonuniform power grid and that includes a scan chain, the method comprising: assigning respective toggle count thresholds for respective power grid regions of the non-uniform power grid; and determining whether respective numbers of toggles by scan elements of the scan chain within one or more respective power grid regions meet respective toggle count thresholds for the one or more respective regions during at least one scan-shift cycle in the course of scan-in of a test pattern to the scan chain.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates in general to the design of integrated circuits,and more particularly, to testing of integrated circuit designs.

2. Description of the Related Art

As integrated circuits have become more complex and densely packed withgates, they have become progressively more difficult to test in order toensure desired functionality. As a result, testability has become anincreasingly more important and challenging goal of the integratedcircuit design process. One approach to testing integrated circuitdesigns is to take a netlist representing an integrated circuit designand to add and/or replace certain storage elements such as flip-flopswith special memory cells, called scan elements. Scan elements allowapplication of test vectors to certain portions of an integrated circuitproduced according to the design.

An automatic test pattern generation (ATPG) process produces testvectors, also referred to as ATPG patterns. A suitable set of testvectors can demonstrate the absence of certain manufacturing faults.ATPG-style reasoning involves loading a test vector to a set of scancells of an integrated circuit. The circuit performs one or morefunctional cycles so as to cause the stored test vector values to drivecombinational logic to produce new values that are captured by the scanelements. The values stored in the scan elements after the one or morefunctional cycles are observed and compared with expected values toevaluate whether the circuit has a fault.

FIG. 1 is an illustrative drawing of a portion of an integrated circuitincluding two scan cells and generic combinational logic and showingshift and capture timing signals. A typical scan element comprises adual purpose state element that can operate as a functional element in acircuit design during normal circuit operation, and alternatively, canoperate as a unit of a serial scan-shift register during scan modeoperation. In some embodiments, a scan element is implemented as anedge-triggered flip-flop with a two-way multiplexer (scan mux) to selectbetween a system data D input (during function/capture mode operation)and scan-data SD input (during scan mode operation). The scan muxtypically is controlled by a single control called a scan enable (SE)that selects between the scan-data (SD) and the system-data (D).Scan-data is transported from/to test equipment (not shown) by a serialshift operation. To that effect, the scan elements are connected intoserial shift register strings called scan chains. It is not unusual fora scan chain to include hundreds or even thousands of individual scanelements, although only two are shown in this simplified illustrativedrawing. The scan-in port of each scan cell in the chain is eitherconnected to an external input (scan-in) for the first element in thechain or to the output of a single predecessor element in the chain. Theoutput from the last scan element in the chain is connected to anexternal output (scan-out).

During scan mode operation, the SE control provides a logic value thatcauses the scan multiplexers to select the scan-data input (SD). Forexample, during first scan shift cycles control data (i.e. scan-in data)in the form of an ATPG pattern is serially shifted one bit at a time,from one scan element to the next in the chain. The scan-data followscan data paths that bypass the combinational logic circuitry interposedbetween data paths between scan elements. Depending upon the length ofthe scan chain, hundreds or even thousands of clock cycles may berequired to shift-in an entire ATPG pattern to the scan chain.

Once an entire ATPG pattern has been loaded into the scan chain, thescan cells typically operates for two clock cycles in a capture mode.The scan cells' SE control signals are changed to logic values thatcauses scan multiplexers to select the data input (D). A first clockcycle causes a scanned-in data value in a previous scan element in thechain to be provided to the combinational logic fed by that scanelement. A second clock cycle causes a logic value generated by thecombinational logic in response to the scanned-in control value to becaptured on the D input of the next scan element in the chain.

For example, assume that the generic combinational logic includes aninverter circuit (not shown). Further assume that a value 0 was scannedin to the previous scan element. During the first clock pulse in thecapture mode, the logic 0 value is provided to an input of the inverter.The inverter produces a logic value 1 in response to its logic 0 input.During the second scan cycle of the capture mode, the next scan elementcaptures the logic 1 value.

Following the capture cycles, the SE control values are changed to causethe scan elements to select the scan-data (SD) input. During secondshift cycles, the captured data values are shifted out of the scan chainfor evaluation scn. It will be appreciated that testing ordinarilyinvolves numerous different ATPG patterns used to test for numerousdifferent potential design faults. In order to speed the testingprocess, a next ATPG pattern may be shifted in to the chain from testequipment, simultaneously with shift-out of previously captured (i.e.observed) data to the test equipment for evaluation. Thus, during theillustrated first scan shift cycles, while a new ATPG pattern is beingshifted in to the scan chain, previously captured data may be shiftedout for evaluation. Similarly, during second scan shift cycles, as thedata captured in response to the first scanned-in data is shifted out, anext ATPG pattern can be shifted in.

Scan shift cycles ordinarily operate at a lower frequency than capturecycles. Scan shift cycles usually operate a frequency that is somewhatlower than the functional mode frequency of operation of the integratedcircuit under test. Scan test is a structural test and not functional.Thus, there is no need to test it at-speed. Accordingly, the scan pathneed not be designed for at-speed operation as in the normal(functional) mode it will never be used. In contrast, capture cyclestypically operate at the normal functional mode operating frequency ofthe circuit under test. For this reason, the capture mode frequencyoften is referred to as being “at speed”.

Power distribution networks distribute power and ground voltages frompad locations to circuit blocks in a design. Shrinking devicedimensions, faster switching frequencies and increasing powerconsumption in deep submicron technologies can cause large switchingcurrents to flow in the power and ground networks, which degradeperformance and reliability. Due to the resistance of the interconnectsconstituting the network, there is a voltage drop across the network,commonly referred to as IR drop. IR drop is a reduction in voltage thatoccurs on power supply networks (i.e., VDD) in integrated circuits.

Integrated-circuit design usually assumes the availability of an idealpower supply that can instantly deliver any amount of current tomaintain the specified voltage throughout the chip. In reality, however,a combination of increasing current per-unit area on the die andnarrower metal line widths (which causes an increase in the power-gridresistance) causes localized voltage drops within the power grid,leading to decreased power supply voltage at cells and transistors.These localized drops in the power supply voltage decrease the localoperating voltage of the chip, potentially causing timing problems andfunctional failures.

IR drop can be both a local and global phenomena. IR drop can be localphenomenon when a number of cells in close proximity switchsimultaneously, causing IR drop in that localized area. A higher powergrid resistance to a specific portion of the chip can also causelocalized IR drop. IR drop can be a global phenomenon when activity inone region of a chip causes effects in other regions. For example, onelogic block may suffer from IR drop because of the current drawn byanother nearby logic block.

There can be an increased risk of IR drop during ATPG-style testingsince the amount of simultaneous switching during a scan shift cycle mayexceed the amount of switching expected during functional mode operationfor which a chip was designed. The shifting of ATPG patterns or ofcaptured (observed) test results through a scan chain can result insimultaneous switching of more gates than would ordinarily occur duringactual functional mode operation of the chip. Moreover, causing theintegrated circuit to perform “at speed” functional cycles with ascanned-in test pattern data also may lead to simultaneous switching ofmore gates than ordinarily would occur during actual functional modeoperation of the chip.

One reason for this increased IR drop risk during manufacturing testingis that test patterns often are developed to perform structural testingwithout regard to the functional operation of the circuit. As such,improvidently selected test patterns may cause excessive switchingduring manufacturing testing that might never actually occur duringfunctional operation of the chip. Thus, excessive switching duringmanufacturing testing can lead to IR drop problems or even thermalproblems that suggest a design flaw when no flaw actually exists.

Thus, there has been a need to ensure that ATPG patterns do notthemselves cause simultaneous switching that results in a significantrisk of excessive IR drop and corresponding false detections ofmanufacturing faults. Aman A. Kokorady and C. P. Ravikumar, in “StaticVerification of Test Vectors for IR Drop Failure”, ICCAD '03, pp.760-764, address the problem of validation of a test vector for IR dropsafeness using a technique, called “TestRail”. Flip-flops are assignedto a power rail, and a toggle activity factor is calculated using aformula that reflects both the toggling activity generated by a testvector and the stress it causes to the power rails. Kokorady et al.disclose the use of standard deviation techniques to find the mostactive patterns, and then subject them to detailed analysis. Kokorady's,however, teaches the use of VCD, which cannot easily be extended toshift cycles because the VCD are huge and processing for each shiftcycle typically is beyond time and space complexities.

Nisar Ahmed et al., in “Transition Delay Fault Test Pattern GenerationConsidering Supply Voltage Noise in a SoC Design”, DAC '07, pp. 533-538,address the detection of IR drop prone test patterns using a techniquecalled Switching Capacitance Average Power (SCAP) model. The techniquegenerates transition delay fault patterns considering the supply voltagenoise. The SCAP model is used to account for both capacitances in thedesign and toggling activity. However, Nisar focused on capture cyclesduring at-speed test. While an IR drop may occur during shift cycles,the technique disclosed by Nisar is not easily extendable to shiftcycles due to the time complexities.

Unfortunately, neither of these prior approaches takes into accountphysical characteristics of the power supply network such as density ofthe power grid or decoupling capacitance placement together withswitching activity in attempting to evaluate whether ATPG patternsthemselves are prone to cause excessive IR drop during scan shift.Therefore, there has been a need for improvements in the evaluation oftest patterns for use in manufacturing testing. The present inventionmeets this need.

SUMMARY OF THE INVENTION

In one aspect, a method is provided to evaluate whether one or more testpatterns is power safe for use during manufacturing testing of anintegrated circuit that includes a nonuniform power grid. The circuitincludes a scan chain in which first scan elements are disposed in afirst power grid region and second scan elements are disposed in asecond power grid region. A first threshold is obtained that includes afirst threshold number of toggles per scan shift cycle for the firstscan elements within the first power grid region. A determination ismade as to whether a number of toggles by the first scan elements meetsthe first threshold number of toggles during at least one scan-shiftcycle in the course of scan-in of a test pattern within the scan chain.Thus, scan element switching levels in different grid regions are usedto determine whether IR drop problems are likely to occur during scanshift.

In another aspect, the first and second grid regions may have differentphysical characteristics such as grid density or decoupling capacitancedensity, for example. The first threshold value is determined based atleast in part upon the physical characteristics of the first gridregion. In yet another aspect, the first and second power grid regionsare adjacent to each other, and the first threshold value may bedetermined based at least in part upon a switching level of the secondpower grid region.

Thus, in some aspects, physical characteristics of an integrated circuitpower grid are used to determine whether shifting of values within ascan chain is likely to cause unacceptable IR drop during manufacturingtesting.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustrative drawing of a portion of an integrated circuitincluding two scan cells in a scan chain and generic combinational logicand showing scan shift and capture timing signals used to trigger thescan cells during san shift cycles and capture cycles respectively.

FIG. 2 a-2 c are illustrative drawings showing a floorplan of anintegrated circuit having a plurality of different functional circuitblocks, a full top-level view of power routing for the blocks of theentire circuit, and representative detailed views of portions ofdifferent block-level power grids showing comparative grid densitieswithin different blocks.

FIG. 3 is an illustrative drawing of a portion of a non-uniform powersupply grid showing a sampling of state storage elements powered bydifferent regions of the grid.

FIG. 4 is an illustrative drawing that shows scan-in of a test patternto a scan chain and corresponding scan out of prior scan contents fromthe scan chain and that shows a total number of toggles per individualscan shift cycle and that shows a total number of toggles for each scanelement in the course of a entire scan shift cycles in accordance withsome embodiments of the invention.

FIG. 5 is an illustrative flow diagram of a computer program controlledprocess to evaluate whether one or more test patterns is power safe foruse during manufacturing testing of an integrated circuit that includesa nonuniform power grid in accordance with some embodiments of theinvention.

FIG. 6 is an illustrative drawing of representing scan-in to a scanchain of a first test pattern followed by the launch of that first scanpattern and the capture of results in the scan chain, followed byscan-in of a second test pattern to the scan chain and the correspondingscan out of the results from the scan chain in accordance with someembodiments of the invention.

FIG. 7 is an illustrative block level diagram of a computer system 700that can be programmed to implement processes involved evaluatingwhether proposed test patterns for use in manufacturing testing iofintegrated circuits having nonuniform power grids are power safe inaccordance with embodiments of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description is presented to enable any person skilled inthe art to make and use a method and apparatus to evaluate whetherintegrated circuit switching activity is within a power-safe range, inaccordance with embodiments of the invention, and is provided in thecontext of particular applications and their requirements. Variousmodifications to the preferred embodiments will be readily apparent tothose skilled in the art, and the generic principles defined herein maybe applied to other embodiments and applications without departing fromthe spirit and scope of the invention. Moreover, in the followingdescription, numerous details are set forth for the purpose ofexplanation. However, one of ordinary skill in the art will realize thatthe invention might be practiced without the use of these specificdetails. In other instances, well-known structures and processes areshown in block diagram form in order not to obscure the description ofthe invention with unnecessary detail. Thus, the present invention isnot intended to be limited to the embodiments shown, but is to beaccorded the widest scope consistent with the principles and featuresdisclosed herein.

A robust power distribution network is critical to performance andreliable operation of modern high performance integrated circuits.Excessive voltage drops in the power grid can reduce switching speedsand noise margins of circuits and can inject noise that may lead tofunctional failures. Moreover, high average current densities in thepower distribution network can lead to undesirable wearing due toelectromigration. A challenge in the design of power distributionnetworks is to achieve sufficient voltage regulation throughout thecircuit despite wide variations of power demands across the chip, and tobuild such a grid using minimal area for power grid metal layers.

FIG. 2 a-2 c are illustrative drawings showing a floorplan of anintegrated circuit having a plurality of different functional circuitblocks (FIG. 2 a), a top-level view of power routing for the blocks ofthe entire circuit (FIG. 2 b), and representative detailed views ofportions of different block-level power grids showing comparative griddensities within different blocks (FIG. 2 c). In general, integratedcircuits are designed with functional mode operation in mind. Certainfunctional blocks of a circuit are more prone to IR drop problems thanothers due to higher simultaneous switching levels, for example.Accordingly, a non-uniform power grid often is provided in highperformance circuits in order to ensure delivery of optimum power levelsthroughout the chip with a power grid that occupies no more area thanrequired in each region. The non-uniformity may involve non-uniformityof one or more physical features of the power grid such as grid density,line thickness and decoupling capacitance placement.

A portion of a non-uniform power grid that supplies a circuit blockhaving a higher level of simultaneous switching during functional modeoperation often is designed to be denser than a portion of the powergrid that supplies a circuit block having a lower level of simultaneousswitching during functional mode operation. Similarly, a power grid mayhave thicker supply or ground lines in circuit blocks that have highersimultaneous switching levels during functional mode operation.Moreover, a power grid may have a higher density of decouplingcapacitances in circuit blocks that have higher simultaneous switchinglevels during functional mode operation.

FIG. 2 a shows that at a circuit block-level, the integrated circuit 212includes a plurality of functional blocks 214 b-228 b. Different blockswithin the circuit have different switching activity levels. Forinstance, blocks 214 b-218 b may comprise a DSP core that has fargreater switching activity than that of block 220 b, which may comprisean adder circuit, for example. FIG. 2 b shows that at a power gridlevel, the circuit 212 includes a non-uniform power grid that may beoptimized for both power regulation and area usage. The power grid viewof the circuit 212 includes power grid regions 212 g-228 g, which havedifferent power grid densities. The difference in grid densities of gridregions 22 g and 26 g, for example, is indicative of an expecteddifference in power consumption. Denser power grids typically aredesigned into regions that are expected to have higher powerconsumption. FIG. 2 c shows a partially exploded view of power gridportions 30-1 g, 28-1 g 26-1 g, 22-1 g and 24-1 g have differentphysical grid densities indicative of the different levels of switchingactivity in the different blocks that they serve during functionaloperation. Moreover, it will be appreciated that different power gridportions may have different power supply line widths (since thickerlines can handle higher current density) and different decouplingcapacitance densities (not shown) in order to compensate for differentswitching activity levels.

FIG. 3 is an illustrative drawing of a portion of a non-uniform powersupply grid showing a sampling of state storage elements powered bydifferent regions of the grid. The power supply grid includes first gridportions that include power grid region [2,2] in which power supplylines are spaced apart vertically and horizontally by first amounts andincludes a second grid portions that include power grid region [4,5] inwhich power supply lines are spaced more closely together bothvertically and horizontally by second amounts. Local regions of a chiphaving higher switching activity during functional mode operation oftenrequire a locally more robust power distribution network to avoid IRdrop problems. In this example, a global power grid having the firstvertical and horizontal power line spacings traverses the entire IC. Theglobal power grid alone distributes power to the first grid portions.The second grid portions may include as a denser local grid, within theglobal grid, that serve a block(s) within the circuit that have higheramounts of simultaneous switching activity during normal function modeoperation.

A first collection of state storage elements such as flip-flop circuitsare shown placed within the power grid square [2,2]. A second set ofstate storage elements are shown placed within the global grid at gridsquare [4,5]. It will be appreciated that additional state storageelements may be present within other grid locations, but these are shownin order to simplify the explanation and to not clutter the drawing. Thefirst set of state elements are fed by the global power grid alone,which has a less dense arrangement of power supply lines, i.e. the linesare spaced farther apart. The second set of state elements are fed by adenser local power grid, which has a denser arrangement of power linesadded between global power grid lines, i.e. the lines are spaced closertogether.

Consider that in this example non-uniform power grid, a given unit ofpower grid supplies the entire first set of state elements in the powergrid region [2,2]. The first set of state elements comprises ten stateelements, and therefore the given unit of power supplies all ten stateelements. However, the finer grain second (local) power grid suppliespower to fewer state elements per unit of power grid. Specifically, forexample, in the more densely spaced power grid region, that same unit ofpower grid supplies the single state element within the denser gridlocation [4,5,1,3], and the single state element within the denser gridlocation [4,5,2,3], and the two state elements within the denser gridlocation [4,5,3,3], for example. Also, that same unit of power gridsupplies the single state element within the denser grid location[4,5,1,2], and the two state elements within the denser grid location[4,5,2,2], and the single state element within the denser grid location[4,5,3,2], for example. Additionally, the same unit of power gridsupplies the two state elements within the denser grid location[4,5,2,1] and the single state element within the denser grid location[4,5,3,1], for example.

Hence, the number of state elements fed per unit power grid in powergrid region [2,2] is less compared to the number of state elements fedper unit power grid in power grid region [4,5]. The denser local gridspacing within region [4,5] makes the second set of state elements lesssusceptible to IR drop than the first set of state elements in powergrid [2,2]. By way of hypothetical example, based upon power gridphysics, it could be that if 50% of the first state elements switch inany clock cycle then the likelihood of a current surge and hence an IRdrop would be greater than if 75% of state elements of second set switchin a single clock cycle. This is because the grid region that suppliesthe first set of state elements is less dense (coarser) than the gridthat supplies the second set of state elements.

The inventors have recognized that the physical design of a non-uniformpower grid has an impact upon the likelihood that an ATPG pattern willresult in an excessive IR drop during shift scan cycles and also duringcapture cycles. In accordance with some aspects of the invention, testpatterns are analyzed to determine switching activity per state element.Toggle activity for the pattern is determined for different regions ofthe power grid based upon the switching activity. The toggle activityfor the different regions is evaluated relative toggling activitythreshold criteria. In some embodiments, if the switching in one or morepower grid regions exceeds a selected threshold according to thecriteria, then the pattern may be declared as prone to IR drop relatedfailures. For example, a user set switching activity threshold can bechosen based upon factors such as semiconductor process technology andpower grid dimensions.

Different regions of the same grid may have different switching activitythresholds. Assume, for example, that the first set of storage elementswithin location [2,2] and the second set of storage elements withinlocation [4,5] are implemented as scan elements in a scan chain. Thesecond region [4,5] has a denser placement of power grid lines, andtherefore, is likely to be more robust and may be able to withstandperhaps up to 60% of the state element of the second set switchingduring a single clock cycle, for example. However, the first region[2,2] has a wider, less dense, placement of power grid lines, andtherefore, is less robust and may be able to withstand perhaps up to 30%of the state element of the first set switching during a single clockcycle, for example.

Moreover, placement of decoupling capacitances within different regionsof a power grid can influence the robustness of the power distributionnetwork and its susceptibility to IR drop in the face of a high volumeof simultaneous switching activity. Decoupling capacitances act ascharge reservoirs and feed the power grid with quick charges when thereis a power surge. In an integrated circuit designed using standardcells, decoupling capacitances typically are inserted in intermediatelocations between storage elements (e.g., flip-flops) and standardcells.

In some embodiments of the invention, a system programmed according to acomputer program process determines switching activity associated with atest pattern per scan cycle for one or more segments of a given scanchain. A data structure created in computer readable medium representsthe given scan chain in a circuit design or at least a portion thereof.For each scan element in the scan chain and for each scan shift cycle(i.e. for each shift by one bit), the process determines whether thescan element toggles (i.e. changes state). The process correlates togglecounts for scan elements represented in the data structure with powergrid locations of corresponding scan elements in the design. In otherwords, scan elements in the data structure correspond to a scan elementsin the design, and scan elements in the design are associated with powergrid regions, such as grid squares, for example. Thus, in determining atoggle count per shift cycle for the individual scan elements in thescan chain that correspond to a given power grid region, the process ineffect can determine a toggle count per shift cycle for such given powergrid region of the design. Different power grid regions may be assigneddifferent switching activity threshold criteria to determine whethertoggle activity during any given scan shift cycle involving the testpattern is likely to produce excessive IR drop. If a determination ismade that no scan shift cycle results in excessive IR drop within apower grid region, then the test pattern is declared power-safe. If onthe other hand, a determination is made that one or more scan shiftcycles results in excessive IR drop within any power grid region, thenthe test pattern is flagged for further analysis; such test pattern maybe discarded or may be re-designed to make it power-safe.

FIG. 4 is an illustrative diagram of a scan chain showing contents ofeach scan element at each clock cycle of a scan shift process in whichscan-in values scanned in to one end of the scan chain and scan-out arescanned out the other side. The sample scan chain comprises only eightscan elements F1-F8, although an actual scan chain may include hundredsor even thousands of scan elements. A data structure representing thisscan chain is encoded in computer readable memory as part of asimulation model of an integrated circuit for which test patterns aredeveloped. The illustrative drawing shows the contents of at t0 justbefore the start of scan shift and during eight consecutive scan clockcycles t1-t8. The example scan process involves a scan-in of a neweight-bit ATPG pattern 01100100. At time t0, just before the start ofthe scan-in of the new ATPG pattern, the prior contents of the shiftregister scan elements are 10110100. As explained in detail below, asthe new ATPG pattern is scanned in bit-by-bit, clock cycle by clockcycle, the prior contents of the scan chain are shifted out bit-by-bit,clock cycle by clock cycle.

Each different view of the scan-chain shows the contents of the scanelements of the scan chain at a different time cycle increment of thescan process, and to the left shows remaining ATPG patterns bits yet tobe scanned in and to the right shows bit values that already have beenscanned out. The view labeled cycle t0 of the drawing represents thescan chain and its contents at time t0, just prior to the start of thescan process. At time t0, the scan elements F1 to F8 contain logicalvalues, 10110100, respectively. This constitutes the prior contents ofthe scan chain. During a first clock cycle t1, represented by cycle t1,the contents of all eight scan elements shift by one element to theright, and a new value 0, the first value of the ATPG pattern, isshifted in to F1. In addition, during the first scan clock cycle t1, aprior value 0 is scanned out of F8, the last scan element in the scanchain. Just after the first clock cycle t1, the contents of the scanchain are 01011010 shown in scan elements F1 to F8 respectively. Theremaining portion of the ATPG pattern to be scanned in is 0110010 shownon the left, and the 0 value that has been shifted out is shown on theright. During a second clock cycle t2, represented by the view labeledcycle t2, the contents of all eight scan elements are again shift by oneelement to the right, and a next new value 0, the second value of theATPG pattern, is shifted in to F1. In addition, during the second scanclock cycle t2, a next prior value 0 is scanned out of F8, the last scanelement in the scan chain. As shown in the view labeled cycle t2, afterthe second clock cycle t2, the contents of the scan chain are 00101101shown in scan elements F1 to F8 respectively, the remaining portion ofthe ATPG pattern to be scanned in is 011001 shown on the left, and thevalues 00, shown on the right, have been shifted out over the course ofscan cycles t1-t2. The shift-in process continues through eight clockcycles t1-t8 until all eight bits of the ATPG pattern have been shiftedin to the scan chain. Referring now to the view labeled cycle t7 thereis shown results after clock cycles t1-t7. The contents of the scanchain are 11001001 shown in scan elements F1 to F8 respectively. Theremaining portion of the ATPG pattern to be scanned in is 0 shown on theleft, and the bit pattern 0110100 has been shifted out shown on theright. The view labeled cycle t8, represents results after clock cyclest1-t8. The entire eight-bit ATPG pattern has been scanned in to the scanchain, and the contents of the scan chain are 11001001 shown in scanelements F1 to F8 respectively. There are no additional ATPG patternbits shown to the left to be scanned in. The entire original contents ofthe scan chain have been scanned out, as indicated by the string ofvalues 10110100 shown on the right.

FIG. 4 also shows the switching activity in terms of the total number oftoggles per individual scan shift cycle and the shows the total numberof toggles for each scan element in the course of the entire scan shiftcycles. Referring to views labeled cycle t0 and cycle t1, the contentsof six scan elements, F1, F2, F3, F5, F6 and F7 change during the firsttime cycle t1. Scan elements F2, F5 and F7 change from 0 to 1 (indicatedby upward arrows), and the contents of scan elements F1, F3 and F6change from 1 to 0 (indicated by downward arrows). The number 6 in thebox to the right in the view labeled cycle t1 indicates the switchingactivity in terms of the total number of toggles during the first scanshift cycle. Referring to views labeled cycle t1 and cycle t2, thecontents of six scan elements, F2, F3, F4, F6, F7 and F8 change duringthe second time cycle t2. Scan elements F3, F6 and F8 change from 0 to 1(indicated by upward arrows), and the contents of scan elements F2, F4and F7 change from 1 to 0 (indicated by downward arrows). The number 6in the box to the right in the view labeled cycle t2 indicates theswitching activity during the second scan shift cycle. The boxes next toeach of the views of cycles t1-t8 represent the total number of togglesper scan shift cycle. For example, Referring to the views labeled cyclet7 and cycle t8, the contents of five scan elements, F1, F3, F5, F6 andF8 change during the eighth time cycle t8. Scan elements F3 and F6change from 0 to 1 (indicated by upward arrows), and the contents ofscan elements F1, F5 and F8 change from 1 to 0 (indicated by downwardarrows). The number 5 in the box to the right of view labeled cycle 8indicates the switching activity during the second scan shift cycle.

FIG. 4 shows the number of toggles per scan element in the course of theentire scan process. In particular, at the bottom of FIG. 4, followingthe nine views of each scan element there is a number indicating thetotal number of times the scan element toggled in the course of theentire scan process. For example, scan element F1 toggled a total of 5times as indicated by the number 5 in the box below the F1 column.Specifically, scan element F1 toggled during scan cycles, t1, t3, t4, t6and t8. Also, for example, scan element F7 toggled 6 times as indicatedby the number 5 in the box below the F1 column. Scan element F7 toggledduring scan cycles t1, t2, t3, t5, t6 and t7. This overall toggleactivity per scan element provides a measure of overall power consumedby individual scan elements throughout the entire scan-in process. Thisoverall power consumption information for individual scan elements, inturn, can be used to estimate overall power consumption, and relatedthermal effects, throughout an entire shift-in operation due toswitching of scan elements spaced close together in the integratedcircuit, for example. If the overall power consumption due to shift-inof an ATPG is too high, then the pattern may be discarded or marked formodification or its place or order in a test pattern database may bechanged so as to alter the number of toggles involved in shifting itinto the scan chain by changing the likely prior contents at the time ofits shifting in.

The above process to determine switching activity during scan-shift isaccomplished under control of a switching activity measurement processcontrolled by a computer program encoded in a computer readable medium.As explained above with reference to FIG. 3, different scan elements ofthe scan chain may be associated with different regions of the powergrid, which may have different switching activity thresholds. Forinstance, the power grid density in region [2,2] is less than that ofregion [4,5]. Therefore power grid region [2,2] is likely to be assigneda lower switching activity threshold than power grid region [4,5].

In accordance with some embodiments, a designer-selected switchingactivity level activity threshold is determined in accordance with aprocess described according to the following pseudo code stored incomputer readable medium.

-   -   if (density of power grid less than x %)        -   then if (decap placement in the grid is less than y %)            -   and if (flip-flop switching is greater than z %)                -   // then there are potential IR drop concerns.                    The values for x, y and z are user-selected                    parameters based upon factors such as technology                    considerations and the level of pessimism, i.e.,                    level of risk aversion. In some embodiments, a data                    structure to receive user-specified switching level                    tolerance parameters can be stored in computer                    readable medium in an industry standard format such                    as the Common Power Format (CPF). The CPF can permit                    retrieval and setting of (x,y,z) parameter values                    through text file keywords, for example.

The (x,y,z) values in this example are user set parameters based on thetechnology process and a (subjective) measure of designer ‘pessimissm’,i.e., the designer's belief as to the relationship between the parametervalues and switching activity level that will result in deleterious IRvoltage drop. For example, assume that the flip-flop switching activityfor a given grid region is determined to be 65% during a given clockcycle during scan. Further, assume that the given grid region is 2 unitsby 2 units and that of 5% of 2 units by 2 units have decaps. Adetermination of whether the 65% switching level exceeds a switchingthreshold would depend upon user threshold limits set using the (x,y,z)variables. For example, if the user sets threshold limits whichprescribe that a 3 unit by 3 unit grid with a decap density of 4% cantake up to 75% toggles per clock cycle, then the above 65% switchingcase is not a problem. However, for example, if the user specified onlya 50% toggle rate per clock cycle, then the above 65% switching casewould surpass the threshold. The designer would be alerted of thepotential problem with the switching pattern, and then could address theproblem by modifying the pattern, for instance.

Moreover, the switching activity threshold also may be influenced byswitching activity in an adjacent grid region. The inventors haverecognized that switching of regions of a grid adjacent to a givenregion may influence IR drop within that given region. For example, ifone power grid region has a switching level during a given scan shiftclock cycle that exceeds a threshold for that region, but anotheradjacent power grid region has a switching level during the same clockcycle that is far below its threshold (e.g., less than 10% of itsthreshold), then IR drop in the former power grid region can becompensated for automatically by power in the adjacent region. Thus,switching level in an adjacent grid region is another factor that may beincluded in determination of threshold switching level for a given gridregion.

Referring again to FIG. 4, as a first example, assume that the scanelements F1-F8 represent eight scan elements from the first set of scanelements within grid location [2,2]. In that case, the switchingactivity during each scan cycle would be evaluated against a switchingactivity threshold set according to the above process for grid location[2,2]. As a second example, assume instead that the scan elements F1-F8represent eight scan elements from the second set of scan elementswithin grid location [4,5]. In that case, the switching activity duringeach scan cycle would be evaluated against a switching activitythreshold set according to the above process for grid location [4,5]. Itwill be appreciated that an actual scan chain may be much longer and mayinclude some segments that include scan elements associated with lessdense power grid regions with lower switching activity thresholds andthat include other segments that include scan elements associated withdenser power grid regions with higher switching activity thresholds. Aprocess in accordance with the present invention, therefore, permitsevaluation of whether an ATPG pattern is power-safe based not only uponswitching activity, but also upon the physical characteristics of thepower grid associated with different scan chain scan elements of thescan chain.

FIG. 5 is an illustrative flow diagram of a computer program controlledprocess 500 to evaluate whether one or more test patterns is power safefor use during manufacturing testing of an integrated circuit thatincludes a nonuniform power grid. The process 500 accesses a testpattern database 502 that comprises a multiplicity of test patternsdeveloped for use in testing an integrated circuit for a variety ofpotential manufacturing defects. The process 500 tests these testpatterns prior to their actual use in manufacturing testing to evaluatewhether they are likely to be power-safe. The process 500 also accessesa design database 504 that comprises simulation model informationconcerning the integrated circuit that is to be tested for manufacturingdefects using the ATPG patterns.

Process module 506 obtains from the test pattern database 502 a nexttest pattern to be tested and provides it to a simulation process moduleindicated by dashed lines 507, which includes process modules 508-514.The simulation process module 507 uses a simulation model of theintegrated circuit from the design database 504 simulate operation of ascan chain into which proposed test patterns are shifted in and fromwhich simulated test results are shifted out. Simulation process module508 simulates shifting in of the obtained next test pattern bit-by-bit,clock cycle by clock cycle, and simulates the simultaneous shifting outof the prior contents of the scan chain bit-by-bit, clock cycle by clockcycle. Simulation module block 510 reports the number of toggles perscan cycle and also reports which scan elements toggle during each scancycle. This information can be used to evaluate whether a togglethreshold has been met for a power grid region during an individualscan-in clock cycle, which could indicate that the test pattern is notpower safe. This information also can be used to evaluate overallswitching activity of individual scan elements or groups of scanelements spaced close together. A relatively high overall switchingactivity could mean that a test pattern is unsafe. Simulation module 512simulates launching of the scanned in test pattern from the scanelements to the functional circuitry (e.g., combinational logic) of theintegrated circuit to stimulate a circuit response. Simulation module514 simulates capture of the results produced by the functional logic inresponse to the stimulation by the scanned in pattern.

Decision process module 516 determines whether the last test pattern hasbeen evaluated. If yes, then the process 500 ends. If no, then theprocess 500 returns to module 506 and obtains a next test pattern formthe test pattern database 502.

FIG. 6 is an illustrative drawing of representing scan-in to an examplefour scan element long scan chain 600, of a first test pattern followedby the launch of that first scan pattern and the capture of results inthe scan chain, followed by scan-in of a second test pattern to the scanchain and the corresponding scan out of the results from the scan chainin accordance with some embodiments of the invention. The upper sectionof FIG. 6 labeled ‘shift n−1 ’ represents a simulation of a four clockcycle shift in of a first proposed test pattern (test pattern n−1) 1010.The prior contents of the scan chain are 0110. At time t0, prior to thestart of the scan in of the first proposed test pattern, the contents ofthe scan chain view 600 t 0(n−1) are 0110. At time t1, the contents ofthe scan chain view 600 t 1(n−1) are 0011. At time t2, the contents ofthe scan chain view 600 t 2(n−1) are 1001. Also, at time t2 theremaining portion of the pattern to be scanned in is 10, and the portionof the prior contents already scanned out is 10. Details of the furtherprogress of the remaining shift-in cycles t3 and t4 can be seen byreference to FIG. 6.

The middle section of FIG. 6 labeled represents the example scan chainview 600R following simulated launch of the first test pattern tofunctional logic (e.g., combinational logic) (not shown, but see FIG. 1for example) of the circuit and capture into the scan elements of thescan chain the simulated response of that logic to the stimulus. Thecaptured contents are 1100. These contents serve as the prior contentfor a second proposed test pattern (‘shift n’) that is shown in thebottom portion of the drawing.

Therefore, it will be appreciated that the captured contents as shown inscan chain view 600R result from the simulated correct (i.e., withoutdefects) response of the circuit to the launched stimulus pattern. Assuch, the number and location of toggles experienced during thissimulated shift of the next proposed test pattern are likely to be thesame as or nearly the same as, actual toggles experienced duringmanufacturing testing of an actual physical integrated circuit.

The lower section of FIG. 6 labeled ‘shift n’ represents a simulation ofa four clock cycle shift in of a second proposed test pattern (testpattern n) 0110. The prior contents of the scan chain are now thecaptured contents 1100. At time t0, prior to the start of the scan in ofthe second proposed test pattern, the contents of the scan chain view600 t 0(n) are 1100. At time t1, the contents of the scan chain view 600t 1(n) are 0110. At time t3, the contents of the scan chain view 600 t3(n) are 1101. Also, at time t3 the remaining portion of the pattern tobe scanned in is 0, and the portion of the prior contents alreadyscanned out is 110. Details of the other shift-in cycles can be seen byreference to FIG. 6.

Table 1 shows number of toggles per shift-in cycle involved in shiftingthe first and second proposed bit patterns

TABLE 1 Time Cycle Shift n − 1 Shift n T1 2 2 T2 2 3 T3 3 2 T4 3 3

Another problem confronted during an integrated circuit design processis to find the worst-case clock cycles to perform IR drop analysis alsohas been an industry wide problem. See for example, C. C. Weng, C. S.Yang, S. Y. Huang, “Precise identification of the worst-case voltagedrop conditions in power grid verification”, —Proceedings of the 2006IEEE/ACM international conference on Computer-aided Design, pp 112-118.Design testing dynamic IR drop problems typically involves acycle-by-cycle computer simulation of circuit operation. In some complexdesigns, several hours may be required for a computer to compute analyzea single cycle during an dynamic IR drop analysis. Therefore, ananalysis of all the clock cycles for IR drop problems could prove to beimpossible because of the huge computer runtime. As an alternative, inaccordance with another aspect of the invention, an analysis of a valuechange dump (VCD) can be made to determine which cycles involveswitching activity levels that are more likely to result in IR dropproblems. Only those cycles then will be analyzed in detail for IR dropproblems. In general, a VCD may contain the information concerningswitching in the combinational logic. However, in some embodiments ofthe invention a VCD is used that includes only the switching informationfor the sequential logic so as to narrow down the cycles that may be ofconcern.

More particularly, a computer software based simulation tool is used tosimulate function mode operation of a circuit design during multipleclock cycles. A VCD is produced for each cycle. As explained above,different regions of the circuit design have different power griddensities and perhaps different decoupling capacitance densities. TheVCD for each clock cycle is evaluated to determine whether switchingactivity in one or more regions of the design during the cycle exceeds aselected switching activity threshold for the region. As explainedabove, different regions may have different switching activitythresholds determined.

Clock cycles are identified in which the level of switching activityexceeds a switching activity threshold for one or more power gridregions. Different power grid regions may have different switchingactivity thresholds. The identified cycles are subject to detailed IRdrop analysis using a tool such as Encounter Voltage Storm for DynamicIR Drop Analysis, produced by Cadence Design Systems, Inc. having aplace of business in San Jose, Calif. Cycles that are not identified ashaving excessive switching are not subjected to such detailed IR dropanalysis. This approach to identifying clock cycles with higher levelsof switching activity can reduce the number of clock cycles subjected todetailed IR drop analysis from few 10,000 s to few 10 s, which in turncould reduce entire runtime of a Dynamic IR drop analysis by a factor ofperhaps 1,000×, for example.

FIG. 7 is an illustrative block level diagram of a computer system 700that can be programmed to implement processes involved evaluatingwhether proposed test patterns for use in manufacturing testing iofintegrated circuits having nonuniform power grids are power safe inaccordance with embodiments of the invention. Computer system 700 caninclude one or more processors, such as a processor 702. Processor 702can be implemented using a general or special purpose processing enginesuch as, for example, a microprocessor, controller or other controllogic. In the example illustrated in FIG. 7, processor 702 is connectedto a bus 704 or other communication medium.

Computing system 700 also can include a main memory 706, preferablyrandom access memory (RAM) or other dynamic memory, for storinginformation and instructions to be executed by processor 702. Mainmemory 706 also may be used for storing temporary variables or otherintermediate information during execution of instructions to be executedby processor 702. Computer system 700 can likewise include a read onlymemory (“ROM”) or other static storage device coupled to bus 704 forstoring static information and instructions for processor 702. The mainmemory 706 and the storage devices 708 may store data such as an testpattern database or design database or a computer program such as anintegrated circuit design simulation process, for example. The mainmemory 706 and the storage devices 708 may store instructions such asinstructions to count toggles per scan element per scan cycle in thecourse of a scan-in of a proposed test pattern and to evaluate whether atest pattern is power safe. The main memory 706 and the storage devices708 also may store instructions to simulate launch of a stimulus testpattern from a scan chain and capture by the scan chain of simulatedresults in response to the stimulus.

The computer system 700 can also includes information storage mechanism708, which can include, for example, a media drive 710 and a removablestorage interface 712. The media drive 710 can include a drive or othermechanism to support fixed or removable storage media 77. For example, ahard disk drive, a floppy disk drive, a magnetic tape drive, an opticaldisk drive, a CD or DVD drive (R or RW), or other removable or fixedmedia drive. Storage media 714, can include, for example, a hard disk, afloppy disk, magnetic tape, optical disk, a CD or DVD, or other fixed orremovable medium that is read by and written to by media drive 710.Information storage mechanism 708 also may include a removable storageunit 716 in communication with interface 712. Examples of such removablestorage unit 716 can include a program cartridge and cartridgeinterface, a removable memory (for example, a flash memory or otherremovable memory module). As these examples illustrate, the storagemedia 714 can include a computer useable storage medium having storedtherein particular computer software or data.

The computer system 700 also includes a display unit 718 that can beused to display information such as IR drop maps. Moreover, the displayunit can be used to display toggle information associated with one ormore proposed test patterns.

In this document, the terms “computer program medium” and “computeruseable medium” are used to generally refer to media such as, forexample, memory 706, storage device 708, a hard disk installed in harddisk drive 710. These and other various forms of computer useable mediamay be involved in carrying one or more sequences of one or moreinstructions to processor 702 for execution. Such instructions,generally referred to as “computer program code” (which may be groupedin the form of computer programs or other groupings), when executed,enable the computing system 700 to perform features or functions of thepresent invention as discussed herein.

The foregoing description and drawings of preferred embodiments inaccordance with the present invention are merely illustrative of theprinciples of the invention. Various modifications can be made to theembodiments by those skilled in the art without departing from thespirit and scope of the invention, which is defined in the appendedclaims.

The foregoing description and drawings of preferred embodiments inaccordance with the present invention are merely illustrative of theprinciples of the invention. Various modifications can be made to theembodiments by those skilled in the art without departing from thespirit and scope of the invention, which is defined in the appendedclaims.

1. A method to evaluate whether one or more test patterns is power safefor use during manufacturing testing of an integrated circuit thatincludes a nonuniform power grid and that includes a scan chain withfirst scan elements associated with a first region of the power grid andwith second scan elements associated with a second region of the powergrid, the method comprising: obtaining a first threshold that includes afirst threshold number of toggles per scan shift cycle for the firstscan elements associated with the first power grid region; determining,using a computer, whether a number of toggles by the first scan elementsmeets the first threshold number of toggles during at least onescan-shift cycle in the course of scan-in of a test pattern within thescan chain; obtaining a second threshold that includes a thresholdnumber of toggles per scan shift cycle for the second scan elementsassociated with the second power grid region; and determining, using acomputer, whether a number of toggles by the second scan elements meetsthe second threshold number of toggles during at least one scan-shiftcycle in the course of scan-in of the test pattern within the scanchain.
 2. The method of claim 1 wherein determining includes: using asimulation model of the integrated circuit to perform a simulation thatincludes, simulating scan-in of the test pattern to a corresponding scanchain within the simulation model, wherein respective scan elements ofthe corresponding scan chain store prior content values that are scannedout as the test pattern is scanned in.
 3. The method of claim 1 whereindetermining includes: using a simulation model of the integrated circuitto perform a simulation that includes, simulating storage of priorcontent values to a corresponding scan chain within the simulationmodel; simulating scan-in of the test pattern to the corresponding scanchain; simulating scan-out of the prior content values from thecorresponding scan chain as the test pattern is scanned in to thecorresponding scan chain.
 4. The method of claim 1 wherein determiningincludes: using a simulation model of the integrated circuit to performa simulation that includes, loading a test pattern to a correspondingscan chain within the simulation model; simulating launch of the testpattern from the scan elements of the corresponding scan chain tocombinational logic of the integrated circuit; simulating capture to thescan elements of the corresponding scan chain response values producedby the integrated circuit in response to the launch of the prior testpattern; simulating scan-in of a next test pattern to the correspondingscan chain; wherein respective captured response values are shifted outof the scan chain as the next test pattern is scanned in to the scanchain.
 5. The method of claim 4 wherein, loading includes simulatingscan-in of the test pattern from the scan elements of the correspondingscan chain.
 6. The method of claim 1 wherein, obtaining includesdetermining the first threshold value based upon parameter informationstored in computer readable storage.
 7. The method of claim 1 furtherincluding wherein obtaining the first threshold value includesdetermining the first threshold value based upon parameter informationstored in computer readable storage; and wherein obtaining the secondthreshold value includes determining the second threshold value basedupon parameter information stored in computer readable storage.